<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui" template="/paginas/template.xhtml">

	<ui:define name="corpoForm">
		

		<h:form id="formBotoesMovimentacaoEstoque" prependId="false">
			<p:panelGrid columns="1" styleClass="botoes" id="botoes">
				<p:commandButton id="botaoCriarMovimentacaoEstoque"
					value="#{rsc.label_criar}" styleClass="botao"
					rendered="#{p:ifGranted('CRIAR_ENTRADAESTOQUE')}"
					action="#{manterMovimentacaoEstoqueBean.criarEntidade}"
					ajax="false" title="#{rsc.title_criar}" />
			</p:panelGrid>
		</h:form>


		<f:event type="javax.faces.event.PreRenderComponentEvent"
			listener="#{manterMovimentacaoEstoqueBean.preRenderList}" />
		<h:form id="formListMovimentacoesEstoque" prependId="false">


			<p:fieldset legend="#{rsc.label_filtros}" toggleable="true"
				collapsed="true">

				<p:panelGrid columns="6">
					<p:outputLabel value="#{rsc.label_numeroNotaFiscal}"
						for="txtNumeroNF" />

					<p:outputLabel value="#{rsc.label_produto}" for="acProduto" />

					<p:outputLabel value="#{rsc.label_status}" for="cmbStatus" />

					<p:outputLabel value="#{rsc.label_dataMovimentacao}"
						for="cldDataMovimentacao" />


					<p:outputLabel for="cmbFilial" value="#{rsc.label_filial}" />

					<p:spacer />

					<p:inputText styleClass="numerico9" id="txtNumeroNF"
						value="#{manterMovimentacaoEstoqueBean.formulario.filtroNumeroNota}" />

					<p:autoComplete id="acProduto" minQueryLength="3"
						value="#{manterMovimentacaoEstoqueBean.formulario.filtroNomeProduto}"
						effect="fade" maxResults="7" size="22"
						completeMethod="#{manterMovimentacaoEstoqueBean.autoCompleteProdutoNome}">
						<p:ajax event="change"
							listener="#{manterMovimentacaoEstoqueBean.buscarPorFiltros}"
							update="listaMovimentacoesEstoque" />
					</p:autoComplete>

					<p:selectOneMenu label="#{rsc.label_status}"
						value="#{manterMovimentacaoEstoqueBean.formulario.filtroStatusMovimentacao}"
						id="cmbStatus">
						<p:ajax event="change"
							listener="#{manterMovimentacaoEstoqueBean.buscarPorFiltros}"
							update="listaMovimentacoesEstoque" />
						<f:selectItem itemLabel="#{rsc.label_selecionar}" itemValue="" />
						<f:selectItems
							value="#{manterMovimentacaoEstoqueBean.formulario.listaStatus}"
							var="c" itemLabel="#{c.label}" itemValue="#{c}" />
					</p:selectOneMenu>

					<p:calendar pattern="dd/MM/yyyy" size="15" showOn="button"
						id="cldDataMovimentacao"
						value="#{manterMovimentacaoEstoqueBean.formulario.filtroDataMovimentacao}">
						<p:ajax event="change"
							listener="#{manterMovimentacaoEstoqueBean.buscarPorFiltros}"
							update="listaMovimentacoesEstoque" />
					</p:calendar>

					<p:selectOneMenu style="width: 150px" label="#{rsc.label_filial}"
						value="#{manterMovimentacaoEstoqueBean.formulario.filtroFilial}"
						id="cmbFilial">
						<f:selectItems
							value="#{manterMovimentacaoEstoqueBean.formulario.filiais}"
							var="c" itemLabel="#{c.nome}" itemValue="#{c.id}" />
					</p:selectOneMenu>

					<p:commandButton update="listaMovimentacoesEstoque"
						actionListener="#{manterMovimentacaoEstoqueBean.buscarPorFiltros}"
						icon="ui-icon ui-icon-search" title="#{rsc.label_buscar}" />
				</p:panelGrid>
			</p:fieldset>
			<p:watermark value="#{rsc.wm_nrNotaFiscal}" for="txtNumeroNF" />
			<p:watermark value="#{rsc.wm_nomeProduto}" for="acProduto" />

			<p:panel id="pnlListaMovimentacoesEstoque"
				header="#{rsc.label_movimentacoesEstoqueCadastradas}"
				toggleable="true" toggleSpeed="500">
				<p:panelGrid columns="1" styleClass="full-width"
					columnClasses="full-width">
					<p:dataTable emptyMessage="#{msg.nenhumRegistroEncontrado}"
						var="movimentacaoEstoque" id="listaMovimentacoesEstoque"
						sortMode="multiple"
						value="#{manterMovimentacaoEstoqueBean.entidades}"
						paginator="true" rows="10"
						paginatorPosition="#{rsc.label_paginationPosition}"
						paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
						rowsPerPageTemplate="10,50,150,200">

						<p:column sortBy="#{movimentacaoEstoque.id}"
							headerText="#{rsc.label_codigo}">
							<p:outputLabel value="#{movimentacaoEstoque.id}" />
						</p:column>

						<p:column sortBy="#{movimentacaoEstoque.notaFiscal.numero}"
							headerText="#{rsc.label_numeroNotaFiscal}">
							<p:outputLabel value="#{movimentacaoEstoque.notaFiscal.numero}" />
						</p:column>

						<p:column sortBy="#{movimentacaoEstoque.notaFiscal.dataEmissao}"
							headerText="#{rsc.label_dataEmissao}">
							<h:outputText
								value="#{movimentacaoEstoque.notaFiscal.dataEmissao}">
								<f:convertDateTime pattern="dd/MM/yyyy" />
							</h:outputText>
						</p:column>

						<p:column
							sortBy="#{movimentacaoEstoque.statusMovimentacao.codigo}"
							headerText="#{rsc.label_status}">
							<h:outputText
								value="#{movimentacaoEstoque.statusMovimentacao.label}" />
						</p:column>


						<p:column sortBy="#{movimentacaoEstoque.valorTotal}"
							headerText="#{rsc.label_valorTotal}">
							<h:outputText value="#{movimentacaoEstoque.valorTotal}"
								converter="bigDecimalConverter" />
						</p:column>

						<p:column headerText="#{rsc.label_acoes}"
							styleClass="coluna-acoes">
							<p:commandButton icon="ui-icon ui-icon-pencil"
								rendered="#{p:ifGranted('ALTERAR_ENTRADAESTOQUE')}"
								title="#{rsc.label_editar}" ajax="false"
								action="editarMovimentacaoEstoque">
								<f:setPropertyActionListener value="#{movimentacaoEstoque}"
									target="#{manterMovimentacaoEstoqueBean.entidade}" />
							</p:commandButton>

							<p:commandButton icon="ui-icon ui-icon-note"
								title="#{rsc.label_historico}" update=":historicoDialog"
								process="@this" oncomplete="historico.show();">
								<f:setPropertyActionListener
									value="#{movimentacaoEstoque.historicosMovimentacao}"
									target="#{manterMovimentacaoEstoqueBean.formulario.historico}" />
							</p:commandButton>

						</p:column>
					</p:dataTable>
				</p:panelGrid>
			</p:panel>
		</h:form>

		<p:confirmDialog message="#{msg.questionConfirmaRemover}"
			appendTo="@(body)" width="250" id="removeDialog"
			header="#{rsc.label_confirmar}" severity="alert"
			widgetVar="confirmacao">
			<h:form id="confirmarForm">
				<p:commandButton value="#{rsc.label_sim}"
					actionListener="#{manterMovimentacaoEstoqueBean.remover}"
					oncomplete="confirmacao.hide()"
					update=":formListMovimentacoesEstoque:listaMovimentacoesEstoque" />
				<p:commandButton value="#{rsc.label_nao}"
					oncomplete="confirmacao.hide()" type="button" />
			</h:form>
		</p:confirmDialog>

		<p:dialog id="historicoDialog" header="#{rsc.label_historico}"
			widgetVar="historico" width="520">
			<ui:repeat
				value="#{manterMovimentacaoEstoqueBean.formulario.historico}"
				var="historico">
				<p:panelGrid columns="6">
					<h:outputText value="#{historico.statusMovimentacao.label} " />
					<h:outputText value="#{rsc.label_noDia}" />
					<h:outputText value="#{historico.dataMovimentacao}">
						<f:convertDateTime pattern="dd/MM/yyyy" />
					</h:outputText>
					<h:outputText value="#{rsc.label_por}" />
					<h:outputText value="#{historico.movimentacaoEstoque.criador.nome}"
						rendered="#{historico.statusMovimentacao.label eq 'Cadastrado'}" />
					<h:outputText
						value="#{historico.movimentacaoEstoque.responsavel.nome}"
						rendered="#{historico.statusMovimentacao.label eq 'Aprovado'}" />
					<h:outputText
						value="#{historico.movimentacaoEstoque.responsavelCancelar.nome}"
						rendered="#{historico.statusMovimentacao.label eq 'Cancelado'}" />
				</p:panelGrid>
			</ui:repeat>
		</p:dialog>


	</ui:define>
</ui:composition>